home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Bootlegger Magazine (1983)(Bootleg).zip / Bootlegger Magazine (1983)(Bootleg).do / CRACKING-PART 2.txt < prev    next >
Text File  |  1996-12-24  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. 5A93-   10 01       BPL   $5A96
  13. 5A95-   20 A8 59    JSR   $59A8
  14. 5A98-   00          BRK
  15. 5A99-   27          ???
  16. 5A9A-   C8          INY
  17. 5A9B-   D0 FA       BNE   $5A97
  18. 5A9D-   85 10       STA   $10
  19. 5A9F-   F0 01       BEQ   $5AA2
  20. 5AA1-   A9 A9       LDA   #$A9
  21. 5AA3-   20 59 00    JSR   $0059
  22. 5AA6-   27          ???
  23. 5AA7-   C8          INY
  24. 5AA8-   C8          INY
  25. 5AA9-   D0 F9       BNE   $5AA4
  26. 5AAB-   85 11       STA   $11
  27. 5AAD-   49 B7       EOR   #$B7
  28. 5AAF-   48          PHA
  29. 5AB0-   A5 10       LDA   $10
  30. 5AB2-   49 11       EOR   #$11
  31. 5AB4-   48          PHA
  32. 5AB5-   D0 01       BNE   $5AB8
  33. 5AB7-   4C 60 08    JMP   $0860
  34. 5ABA-   60          RTS
  35.  
  36. I STRONGLY URGE YOU TO SIT DOWN AND
  37. FIGURE OUT EXACTLY WHAT THE REAL
  38. PROGRAM IS HERE, AND IF POSSIBLE, WHAT
  39. IT DOES.  COVER UP THE EXPLANATION
  40. BELOW, AND GO THROUGH THE CODE BYTE BY
  41. BYTE TO ELIMINATE THE FAKE BYTES. IT'S
  42. NOT JUST CHARACTER-BUILDING--IF YOU GO
  43. THROUGH A FEW OF THESE, YOU'LL LEARN TO
  44. RECOGNIZE THEM WHEN THEY POP UP.
  45.  
  46.      THOSE OF YOU WHO REALLY WENT
  47. THROUGH IT, GIVE YOURSELVES FOUR
  48. KRACKING HONOR POINTS. FOR THE REST OF
  49. YOU, HERE'S A LISTING OF THE FUNCTIONAL
  50. EQUIVALENT (SOME ADDRESSES ARE CHANGED
  51. BECAUSE THE JUNK BYTES HAVE BEEN TAKEN
  52. OUT):
  53.  
  54. 5A91-   A9 00       LDA   #$00
  55. 5A93-   A8          TAY
  56. 5A94-   59 00 27    EOR   $2700,Y
  57. 5A97-   C8          INY
  58. 5A98-   D0 FA       BNE   $5A94
  59. 5A9A-   85 10       STA   $10
  60. 5A9C-   A9 20       LDA   #$20
  61. 5A9E-   59 00 27    EOR   $2700,Y
  62. 5AA1-   C8          INY
  63. 5AA2-   C8          INY
  64. 5AA3-   D0 F9       BNE   $5A9E
  65. 5AA5-   85 11       STA   $11
  66. 5AA7-   45 B7       EOR   $B7
  67. 5AA9-   48          PHA
  68. 5AAA-   A5 10       LDA   $10
  69. 5AAC-   49 11       EOR   #$11
  70. 5AAE-   48          PHA
  71. 5AAF-   60          RTS
  72.  
  73. THIS IS ALSO VALUABLE BECAUSE IT
  74. INTRODUCES THE CONCEPT OF "JUMPING
  75. THROUGH THE STACK".  THE RTS
  76. INSTRUCTION TRANSFERS THE TWO BYTES
  77. ABOVE THE STACK POINTER IN PAGE ONE TO
  78. THE PROGRAM COUNTER, INCREMENTS THE LOW
  79. BYTE BY ONE, AND JUMPS TO THAT
  80. LOCATION. ORDINARILY, THE BYTES ON THE
  81. STACK WERE PLACED THERE AS A RETURN
  82. ADDRESS BY THE JSR INSTRUCTION.  IN
  83. THIS CASE, IN VERY ROUNDABOUT FASHION,
  84. THE ON-LINERS HAVE PUSHED TWO BYTES ON
  85. THE STACK AND EXECUTED AN RTS, WHICH
  86. JUMPS TO THE LOCATION ONE HIGHER THAT
  87. THE VALUES STORED.  THE STORY OF THE
  88. SUBROUTINE GOES LIKE THIS: CREATE A
  89. CHECKSUM BY EXCLUSIVE-ORING TOGETHER
  90. ALL THE BYTES FROM 2700 TO 27FF, AND
  91. STORE IT IN $10. THIS ALLOWS A CHECK TO
  92. SEE IF ANY OF THE BYTES IN THE NIBBLE
  93. COUNT ROUTINE WERE ALTERED.  DO A
  94. SECOND CHECKSUM ON EVERY OTHER BYTE
  95. FROM 2700 TO 27FF, STARTING WITH A
  96. VALUE OF #$20.  STORE THIS IN $11, THEN
  97. EXCLUSIVE-OR IT WITH #$B7 TO PRODUCE
  98. THE LOW BYTE OF THE RETURN ADDRESS:FF.
  99. PUSH THIS ON THE STACK, EXCLUSIVE-OR
  100. THE FIRST CHECKSUM WITH #$11 TO PRODUCE
  101. THE RETURN HIGH BYTE OF $26, THEN DO
  102. THE RTS TO JUMP TO 2700. WHEN YOU LOOK
  103. AT 2700, YOU FIND THIS:
  104.  
  105. 2700-   CE 03 27    DEC   $2703
  106. 2703-   EF          ???
  107. 2704-   03          ???
  108. 2705-   27          ???
  109. 2706-   AD 24 27    LDA   $2724
  110. 2709-   49 8A       EOR   #$8A
  111. 270B-   D0 01       BNE   $270E
  112. 270D-   20 8D 24    JSR   $248D
  113. 2710-   27          ???
  114. 2711-   D0 01       BNE   $2714
  115. 2713-   4C A0 25    JMP   $25A0
  116. 2716-   98          TYA
  117. 2717-   59 00 27    EOR   $2700,Y
  118. 271A-   99 00 27    STA   $2700,Y
  119. 271D-   C8          INY
  120. 271E-   D0 F6       BNE   $2716
  121.  
  122. (YOU SEE, NOW THAT WE'RE FAMILIAR WITH
  123. THIS KIND OF TRICK, THERE'S NOTHING TO
  124. DECODING THAT MESS, IS THERE?)
  125.  
  126.      STAY TUNED FOR NEXT WEEK, WHEN
  127. WE FINISH THIS SUBJECT BY ANSWERING THE
  128. BURNING QUESTION "WHAT IS THE
  129. WINDOW-SHADE TECHNIQUE?", AND PROCEED
  130. TO A DISCUSSION OF MEMORY MOVING AND
  131. FILE SAVING.
  132.  
  133.